package com.pe.cineplanet.proyectocine.repository.hibernate;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

import com.pe.cineplanet.proyectocine.domain.Usuario;
import com.pe.cineplanet.proyectocine.repository.UsuarioRepository;
 

@Repository
public class UsuarioRepositoryHibernate extends HibernateDaoSupport 
	implements UsuarioRepository {
	
	//constructor
	@Autowired
	public UsuarioRepositoryHibernate(SessionFactory sessionFactory) {
		setSessionFactory(sessionFactory);
	}
	
	
	public List<Usuario> obtenerUsuarios() {
		return getHibernateTemplate().find("from Usuario");   
	}
	
	public Usuario obtenerUsuario(int id_usuario) {
		
		return (Usuario) getSession().createQuery("from Usuario u where u.id_usuario=?").setInteger(0, id_usuario).uniqueResult();
	}

	public void grabarUsuario(Usuario obj) {
		getHibernateTemplate().saveOrUpdate(obj);
		
	}

	public void removerUsuario(int id_usuario) {
		Usuario obj = obtenerUsuario(id_usuario);
		getHibernateTemplate().delete(obj);
		
	}


	public List<Usuario> obtenerUsuarioxTipo(String tipo) {
		String sql = "from Usuario u where u.tipo_usuario=?";
		return getHibernateTemplate().find(sql, new Object[]{tipo});  
	}



}
